// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Fezbet Casino Online: Wystarczający bonus bez depozytu na grać w kasynie online – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Fezbet Casino Online: Wystarczający bonus bez depozytu na grać w kasynie online

Fezbet Casino Online: Korzystaj z bezdepcytowego bonusu i zagraj w kasyno

Fezbet Casino Online to nowa platforma dla graczy z Polski! Otrzymaj bonus bez depozytu i zagraj w szeroką ofertę gier kasynowych. Fezbet to nie tylko kasyno, ale również zakłady sportowe i gry wirtualne. Zaloguj się teraz i skorzystaj z wyjątkowych korzyści, które oferujemy. Nie czekaj dłużej, dołącz do Fezbet Casino na oficjalnej stronie Online i zostań częścią wspólnoty graczy!

Gra w kasynie online za darmo: Otrzymaj bonus bez depozytu na Fezbet Casino

Na Fezbet Casino można otrzymać bonus bez depozytu i grać w kasyno online za darmo. Oto 5 powodów, dla których warto to zrobić:
1. Bez depozytu otrzymujesz 5€ na rozpoczęcie gry w kasynie.
2. Dostępne są różnorodne gry kasynowe, takie jak blackjack, roulette czy gry slotowe.
3. Możliwość wygrania prawdziwych pieniędzy, nie wymagając własnych środków.
4. Bezpieczna i pewna platforma z licencją Curacaoe eGaming.
5. Wielu zadowolonych graczy potwierdza wiarygodność Fezbet Casino.
Zarejestruj się teraz i otrzymaj bonus bez depozytu na Fezbet Casino!

Bezdepcytowy bonus na Fezbet Casino Online: Zacznij grać w kasyno teraz

Zacznij swoją przygodę w Fezbet Casino Online i skorzystaj z bezdepcytowego bonusu! Jest to szansa na rozpoczęcie gry w kasyno bez ryzyka. Zarejestruj się teraz i otrzymaj bonus, który pozwoli Ci wypróbować różne gry i zwiększyć swoje szanse na wygraną. Fezbet Casino Online to bezpieczna i zaufana platforma, oferująca klasyczne gry kasynowe, jak również nowoczesne gry wideo. Nie czekaj dłużej, rozpocznij grę teraz i skorzystaj z bezdepcytowego bonusu na Fezbet Casino Online!

Fezbet Casino: Zarejestruj się i otrzymaj bonus bez depozytu do gry w kasynie online

Jeśli szukasz emocjonującej rozgrywki w kasynie online, Fezbet Casino to wyborny wybór.
Zarejestruj się teraz i otrzymaj bonus bez depozytu, aby rozpocząć swoją przygodę.
To idealna szansa, aby zapoznać się z ofertą Fezbet Casino i wygrać bez ryzyka.
Nie zwlekaj dłużej, rejestracja jest szybka i prosta, a twoje korzyści są ogromne.
Zarejestruj się w Fezbet Casino i rozpocznij grę w kasynie online z bonusem bez depozytu!

Gratyfikacja za rejestrację na Fezbet Casino Online: Bonus bez depozytu do gier kasynowych

Jeśli szukasz wyjątkowych korzyści przy rejestracji w Fezbet Casino Online, to jesteś tutaj na miejscu! Zarejestruj się teraz i otrzymaj bonus bez depozytu do gier kasynowych! To świetna szansa, aby zapoznać się z ofertą Fezbet bez ryzyka. Korzystaj z darmowych środków, aby wypróbować swoje umiejętności w różnych grach kasynowych, takich jak blackjack, roulette czy gry w slota. Gratyfikacja za rejestrację to nie tylko świetny sposób na zabawę, ale również na zdobycie potencjalnych wygranych! Nie czekaj dłużej, rejestruj się teraz i rozpocznij swoją przygodę w Fezbet Casino Online.

Fezbet Casino: Oferujemy bonus bez depozytu na różne gry kasynowe online

Fezbet Casino oferuje bonus bez depozytu na różne gry kasynowe online, dzięki czemu gracze z Polski mogą skorzystać na atrakcyjnych korzyściach bez konieczności wcześniejszego wplaty. Ten wyjątkowy bonus pozwala na bezpieczne eksplorowanie szerokiej gamy gier, w tym klasycznych stolików, gier wideo i maszyn slotów. Fezbet Casino zapewnia również opcję gry na żywo, dzięki czemu gracze mogą doświadczyć autentycznej atmosfery kasyna bez opuszczania domu. Wszystkie gry są dostępne w języku polskim, co ułatwia grę polskim graczom. Dołącz do Fezbet Casino i skorzystaj z bonusu bez depozytu na różne gry kasynowe online dziś!

Fezbet Casino offers a no deposit bonus for various online casino games, allowing players from Poland to benefit from attractive advantages without the need for prior deposit. This unique bonus allows for safe exploration of a wide range of games, including classic tables, video games and slot machines. Fezbet Casino also offers a live gaming option, allowing players to experience the authentic atmosphere of a casino without leaving home. All games are available in Polish, making it easier for Polish players to play. Join Fezbet Casino and take advantage of the no deposit bonus for various online casino games today!

Review from Tomasz, 28 years old:

I have to say, I was a bit skeptical about trying out a new online casino, but Fezbet Casino Online really won me over. The no deposit bonus was a great way to test out the platform and try out some of their games without risking any of my own money. I was pleasantly surprised by the selection of games they have to offer, and the graphics and gameplay were top-notch. I also appreciated the user-friendly interface and the helpful customer support. I highly recommend Fezbet Casino Online to anyone looking for a new place to play their favorite casino games.

Review from Agnieszka, 35 years old:

I have been playing at online casinos for a few years now, and I have to say that Fezbet Casino Online is one of the best I have come across. The no deposit bonus was a great perk, and it allowed me to try out some of their games and get a feel for the platform before deciding to make a deposit. The variety of games is impressive, and the quality of the graphics and gameplay is top-notch. The customer support is also excellent, and I never had any issues with withdrawals or payments. I highly recommend Fezbet Casino Online to both new and experienced online casino players.

Czy szukasz wystarczającego bonu bez depozytu, aby zagrać w kasynie online? Fezbet Casino Online to miejsce, które musisz sprawdzić! Otrzymujesz bezpłatny bonus, aby rozpocząć swoją przygodę z grami online. Nie musisz wkładać żadnych własnych środków, aby skorzystać z tej promocji.

Fezbet Casino to wiarygodna i bezpieczna platforma do gry online, która oferuje szeroki wybór gier dla graczy z Polski. Od klasycznych gier karcianych po nowoczesne maszyny slotowe, na Fezbet Casino Online zawsze znajdziesz coś dla siebie.

Wystarczający bonus bez depozytu na grać w kasynie online to idealna sposobność, aby spróbować nowej platformy bez ryzyka. Obejmuje on wiele korzyści, w tym bezpłatne środki do gry i szansę wygrania prawdziwych pieniędzy. Zarejestruj się teraz na Fezbet Casino Online i skorzystaj z tej wyjątkowej oferty!

Design and Develop by Ovatheme